![Cloud9をパブリックサブネットで起動するときは、サブネットのIPアドレスの自動割り当て設定を確認しましょう](https://devio2023-media.developers.io/wp-content/uploads/2022/08/aws-cloud9.png)
Cloud9をパブリックサブネットで起動するときは、サブネットのIPアドレスの自動割り当て設定を確認しましょう
初めに結論
Cloud9の起動先にパブリックサブネットを指定する場合、起動先のサブネットでパブリックIPv4アドレスの自動割り当てを有効化していないと、起動したEC2にパブリックIPが付与されず環境構築が失敗します。
デフォルトのVPCではパブリックIPv4アドレスの自動割り当てが有効化されていますが、新しく作成したVPCでは有効化されていない状態です。
そのため、自分で作成したVPCを指定してCloud9を起動する場合は、サブネットの「パブリックIPv4アドレスの自動割り当て」が有効になっているか確認することをおすすめします。
出会ったエラー
以下の様なパラメータでCloud9の新規作成を試みました。
- Details
- Environment type : New EC2 instance
- New EC2 instance
- instance type : t2.micro (1 GiB RAM + 1 vCPU)
- Platform : Amazon Linux 2
- Timeout : 30 minutes
- Network settings
- Connection : SSM
- VPC settings
- Amazon Virtual Private Cloud (VPC) : 事前に作成していたVPC
- Subnet : 事前に作成していたVPC内のパブリックサブネット
作成が開始されてから30分ほどたって、「Cloud9 could not connect to the EC2 instance. Please check your VPC configuration and network settings to troubleshoot the issue.」というメッセージが出て作成に失敗しました。
調べたこと、試したこと
環境作成時の画面(下の画像参照)で「The VPC that your environment will access. To allow the AWS Cloud9 environment to connect to its EC2 instance, attach an internet gateway (IGW) to your VPC.」と書かれていたことから、IGWが正しくアタッチされているか確認しました。
VPCにはIGWが関連付けられており、サブネットではIGWへのルーティングも設定されていたため、インターネットへの接続は確保されているように見受けられました。
しかし、作成されたEC2インスタンスをよく見ると、作成されたEC2インスタンスにパブリックIPが付与されていませんでした。
ならば後から付与すればいい話と考えて、作成されたEC2にEIPをアタッチしてみましたが、ステータスは失敗のまま変わりませんでした。
そうはいっても、本記事執筆時点(2023/4/4)のCloud9の環境作成画面には、EC2インスタンスにパブリックIPを割り当てられるような設定箇所はありません。
このままではインターネットに接続できないので、Cloud9の環境作成が一生できないかと思いました。
解決
AWSのドキュメントを確認したところ、下記の様な記載を見つけました。
開発環境がSSM を使用して EC2 インスタンスにアクセスし、インスタンスが起動先のパブリックサブネットによってパブリック IP アドレスに割り当てられていることを確認します。これを行うには、独自の IP アドレスを指定するか、パブリック IP アドレスの自動割り当てを有効にします。
サブネット内に起動したリソースにパブリックIPを自動で割り当てる機能がありました。 早速Cloud9を起動する先のパブリックIPv4アドレスの自動割り当てを有効化しました。
作成に失敗したインスタンスは一度削除し、もう一度作成を試したところ無事成功しました。
学んだこと
- VPC サブネットにはパブリックIPv4アドレスを自動割り当てする設定項目がある
- ドキュメントは最後まで全部読もう
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。